import { accountType } from '@/api/global/interface'
export interface IRoomConfigInfo {
	id: number
	name: string
	key: string
	multi: number
	resolution: string
	total_count: number
	config_count: number
	config_used_count: number
}
export interface VirtualRoomParams {
	count: number
	start: number
	order: 1 | 0
}
export interface IVirtualRoomItem {
	/** 虚拟会议室uuid */
	vmr_moid: string
	/** 虚拟会议室名称 */
	name: string
	/** 是否允许RTC接入 */
	enable_rtc: 0 | 1
	/** 最大与会终端数 192-大型192方会议*/
	max_join_mt: number
	/** 会议码率，目前以主视频格式中的码率为准 */
	bitrate: number
	/** 呼叫次数 */
	call_times: number
	/** 呼叫时长(秒) */
	call_interval: number
	/** 呼叫模式 0-手动;2-自动; */
	call_mode: 0 | 2
	/** 传输加密AES加密密钥 */
	encrypted_key: string
	/** 终端双向认证 */
	encrypted_auth: 0 | 1
	/** 是否级联上传 */
	cascade_upload: 0 | 1
	/** 是否级联回传 */
	cascade_return: 0 | 1
	/** 级联回传带宽参数 */
	cascade_return_para: number
	audio_formats: []
	mix: {
		/** 混音模式 1-智能混音; */
		mode: 1 | 0
	}
	vmp: {
		/** 画面合成模式 0-不开启画面合成;2-自动画面合成;*/
		mode: 0 | 2
		/** n-1模式 */
		except_self: 0 | 1
	}
	/** 录像设置 */
	recorder: {
		/** 录播服务器唯一标识 */
		vrs_id?: string
		/** 发布模式 0-不发布;1-发布到视频点播;*/
		publish_mode: 0 | 1
		/** 是否免登录观看直播 */
		anonymous: 0 | 1
		/**	录像模式 0-未开启 1-录像;2-直播;3-录像+直播; */
		recorder_mode: 0 | 1 | 2 | 3
		/** 是否内容共享录像 */
		dual_stream: 0 | 1
		/** 直播密码 */
		live_password?: string
		/** 短信通知 */
		sms?: 0 | 1
		/** 微信通知 */
		wechat?: 0 | 1
		/** 邮件通知 */
		email?: 0 | 1
		/** 直播人员通知列表 */
		live_members?: {
			account: string
			account_type: accountType
			name?: string
			conf_e164?: string
			portrait?: string
			doubleflow?: string
			security_level?: string
		}[]
	}
	one_reforming: 0 | 1
	/** 是否开启fec */
	fec_mode: 0 | 1
	/** 是否是专属虚拟会议室 */
	exclusive: 0 | 1
	exclusive_users: IExclusiveUser[]
	/** 会议是否可见 */
	visible: 0 | 1
	visible_user_domains: IUserDomain[]
	/** 是否开启多流 */
	multi_stream: 0 | 1
	/** 是否开启视频水印 */
	watermark: 0 | 1
	/** 是否开启直播 */
	enable_live: 0 | 1
	/** 是否开启录播 */
	enable_video: 0 | 1
	/** 是否开启量子加密 */
	quantum_encryption: 0 | 1
	/** 是否开启数据协作 */
	enable_dcs: 0 | 1
	/** 数据协作模式 2-自动协作;1-主席协作;*/
	dcs_mode: 1 | 2
	/** 视频质量 0-质量优先; 1-速度优先;*/
	video_quality: 0 | 1
	/** 是否成功 */
	success: 0 | 1
	/** 虚拟会议号码 0-空闲;1-使用中; */
	e164: string
	/** 会议室状态 */
	status: 0 | 1
	/** 会议类型（0-传统会议 1-端口会议 2-SFU纯转发会议） */
	conf_type: 0 | 1 | 2
	/** 传输加密类型 0-不加密; 2-AES加密; 3-国密(SM4); 4-国密(SM1); */
	encrypted_type: 0 | 2 | 3 | 4
	/** 级联方式 0-简单级联;1-合并级联; */
	cascade_mode: 0 | 1
	/** 内容共享权限 0-发言会场;1-任意会场;*/
	dual_mode: 0 | 1
	/** 是否开启初始化哑音 */
	mute: 0 | 1
	/** 是否禁止终端侧解除哑音 */
	force_mute: 0 | 1
	/** 是否开启全场哑音例外 */
	mute_filter: 0 | 1
	video_formats: IMedia[]
	/** 预占资源模式 0-不预占模式;1-预占模式;2-SFU纯转发模式;*/
	preoccupy_resource: 0 | 1 | 2
	/** 是否开启语言激励 */
	voice_activity_detection: 0 | 1
	/** 语音激励敏感度 */
	vacinterval: number
	/** 是否允许匿名登录 */
	anonymous_mt: 0 | 1
	/** 是否来宾会议室 */
	public_conf: 0 | 1
	/** 会议优选协议 0-H323; 1-SIP; 2-RTC;*/
	conf_protocol: 0 | 1 | 2
}
export type SaveVirtualRoom = Omit<IVirtualRoomItem, 'success' | 'status'>
export interface IExclusiveUser {
	account: string
	account_type: accountType
	name: string
	portrait: string
}
export interface IMedia {
	/** 主流视频格式，1-MPEG;2-H.261;3-H.263;4-H.264_HP;5-H.264_BP;6-H.265;7-H.263+;*/
	format: number
	/** 分辨率 	0-无 1-QCIF; 2-CIF 3-4CIF 12-720P 13-1080P 14-WCIF 15-W4CIF 16-4K */
	resolution: number
	/** 帧率 */
	frame: number
	/** 码率 */
	bitrate: number
}
export interface IUserDomain {
	moid: string
	name: string
}
